package com.houdoudou.affair.app;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.houdoudou.bean.AppBack;
import com.houdoudou.bean.Order;
import com.houdoudou.bean.OrderProduct;
import com.houdoudou.bean.Courier;
import com.houdoudou.bean.PasswordUtil;
import com.houdoudou.bean.Supplier;
import com.houdoudou.bean.TransPasswordUtil;
import com.houdoudou.dao.ConnFactory;
import com.houdoudou.dao.OrderDao;
import com.houdoudou.dao.OrderProductDao;
import com.houdoudou.dao.CourierDao;

public class SupplierAffairApp2 {

	
	/*------------------------------------------创建送货员-------------------------------------------------*/

	public static void createCourier(HttpServletRequest req, HttpServletResponse resp){
		
		Supplier supplier;
		Courier courier;
		JSONObject backJO= new JSONObject();
		//获取Bean---------------------------
		try{
			 String jsonData= req.getParameter("jsonData");
			 System.out.println(jsonData);
		    JSONObject jsonJO= JSONObject.fromObject(jsonData);	
		    JSONObject supplierJO= jsonJO.getJSONObject("supplier");
		    JSONObject courierJO=jsonJO.getJSONObject("courier");
			 supplier= (Supplier) JSONObject.toBean(supplierJO, Supplier.class);
			 courier= (Courier) JSONObject.toBean(courierJO, Courier.class);
			 Courier.print("parse from app  ", courier);
			 courier.setSecret(TransPasswordUtil.decrypt(courier.getSecret()));
			 Courier.print("after trans decrype ", courier);
			 courier.setSecret(PasswordUtil.encrypt(courier.getSecret()));
			 Courier.print("after save encrype ", courier);
		 }catch(Exception e2){
			 e2.printStackTrace();			
				new AppBack(req,resp).send(1, "数据解析错误");
			    return ;
		 }
		//调用 dao处理事务 -------------------------
				Connection conn = null;	
				try{
				   conn= ConnFactory.getConn();
				   if(! SupplierAffairApp1.isSupplierValid(conn, supplier)){ 
					   new AppBack(req,resp).send(1, "商家验证失败"); return;}
				               CourierDao courierDao= new CourierDao(conn);
				                  courierDao.create(courier);			         
					  new AppBack(req,resp).send(2, "创建成功");
				      return;
				}catch(Exception e){
					e.printStackTrace();
					try {conn.rollback();} catch (SQLException e1) {e1.printStackTrace();}
					new AppBack(req,resp).send(1, "数据库异常");
				}finally{
					 ConnFactory.closeConn(conn);					
				}
	}
}
